"""
生成器函数执行过程中, yield 会保存当前函数的状态，并返回一个值
下次调用 next() 时，生成器会从上次 yield 的地方继续执行
"""


def yield_test():
    print("--- 第1次返回")
    yield 1
    print("--- 第2次返回")
    yield 2
    print("--- 第3次返回")
    yield 3


g = yield_test()
print(next(g))
print(next(g))
print(next(g))

""" 输出
--- 第1次返回
1
--- 第2次返回
2
--- 第3次返回
3
"""